import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { JwtModule } from '@nestjs/jwt';
import { AuthController } from './auth.controller';
import { AuthService } from './auth.service';
import { JwtStrategy } from './strategy/jwt.strategy';

@Module({
  //jwt模块 用于生成jwt格式token
  imports: [
    JwtModule.registerAsync({
      // 配置项模块 用于调用配置项数据 通常是.env中的数据
      imports: [ConfigModule],
      inject: [ConfigService],
      useFactory: (config: ConfigService) => {
        return {
          // 用于上方导入使用了Config配置项模块 可以通过下方 config.get('配置项名称') 来获取
          secret: config.get('TOKEN_SECRET'),
          // 签名的过期时间 设置为100天
          signOptions: { expiresIn: '100d' },
        };
      },
    }),
  ],
  providers: [AuthService, JwtStrategy],
  controllers: [AuthController],
})
export class AuthModule {}
